/* @flow */

import { mergeOptions } from '../util/index'

export function initMixin(Vue: GlobalAPI) {
  Vue.mixin = function (mixin: Object) {
    // 将mixin合并到this.options中
    this.options = mergeOptions(this.options, mixin)
    return this
  }
}
/*
 // 全局注册混入，传递一个对象
 // 为自定义的选项 'myOption' 注入一个处理器。
  Vue.mixin({
    created: function () {
      var myOption = this.$options.myOption
      if (myOption) {
        console.log(myOption)
      }
    }
  })

  new Vue({
    myOption: 'hello!'
  })
  // => "hello!"


  // vm.$options
  // 用于当前 Vue 实例的初始化选项。需要在选项中包含自定义 property 时会有用处
  new Vue({
    customOption: 'foo',
    created: function () {
      console.log(this.$options.customOption) // => 'foo'
    }
  })
*/